#include "chargement.h"

t_liste** charger_amorcer(t_motte** pMotte, int* eDifficulte, int* eNombreJoueur, int *eTour){
	int eLigne=0;
	int eColonne=0;
	int eNombreJoueurIncremente;
	int etat_terre_prov; /* Creation de ces variables car le fscanf ne lit pas le type te_nourriture, ou te_etat_terre */
	int nourriture_prov;
	int age_prov;
	int race_prov;
	char cTemp;
	int eTampon;
	
	FILE * fichier_Info;
	FILE * fichier_Mottes;
	FILE * fichier_Rattaupes;
	
	t_rattaupes Rattaupe;
	t_liste** pRattaupe;
	fichier_Mottes=fopen("sauvegarde_Mottes.txt","r");
	fichier_Rattaupes=fopen("sauvegarde_Rattaupes.txt","r");
	fichier_Info=fopen("sauvegarde_Info.txt","r");
	
	fscanf(fichier_Info,"%i",&eTampon);
	*eDifficulte=Decryptage(eTampon);
	fscanf(fichier_Info,"%i",&eTampon);
	*eNombreJoueur=Decryptage(eTampon);
	fscanf(fichier_Info,"%i",&eTampon);
	*eTour=Decryptage(eTampon);
	fclose(fichier_Info);
	
	for(eLigne=1;eLigne<elmax-1;eLigne++){
		for(eColonne=1;eColonne<ecmax-1;eColonne++){
			fscanf(fichier_Mottes,"%i",&eTampon);
			etat_terre_prov=Decryptage(eTampon);
			fscanf(fichier_Mottes,"%i",&eTampon);
			pMotte[eLigne][eColonne].eTaupes=Decryptage(eTampon);
			fscanf(fichier_Mottes,"%i",&eTampon);
			nourriture_prov=Decryptage(eTampon);
			fscanf(fichier_Mottes,"%i",&eTampon);
			pMotte[eLigne][eColonne].ptNourriture=Decryptage(eTampon);
			switch(etat_terre_prov){
				case 0: 
					pMotte[eLigne][eColonne].eEtatterre=Rien;
					break;
				case 1:
					pMotte[eLigne][eColonne].eEtatterre=Petit;
					break;
				case 2:
					pMotte[eLigne][eColonne].eEtatterre=Moyen;
					break;
				case 3:
					pMotte[eLigne][eColonne].eEtatterre=Plein;
					break;
				case 4:
					pMotte[eLigne][eColonne].eEtatterre=Pierre;
					break;
			}
			switch(nourriture_prov){
				case 0: 
					pMotte[eLigne][eColonne].Nourriture=Vide;
					break;
				case 1:
					pMotte[eLigne][eColonne].Nourriture=Ver;
					break;
				case 2:
					pMotte[eLigne][eColonne].Nourriture=Plante;
					break;
			}
		}
	}
	fclose(fichier_Mottes);
	
	pRattaupe=Rattaupes_init(*eNombreJoueur);
	eNombreJoueurIncremente=0;
	
	do {
		do {
			fscanf(fichier_Rattaupes,"%c",&cTemp);
			if(cTemp=='$'){
				fscanf(fichier_Rattaupes,"%i",&eTampon);
				Rattaupe.ePosX=Decryptage(eTampon);
				fscanf(fichier_Rattaupes,"%i",&eTampon);
				Rattaupe.ePosY=Decryptage(eTampon);
				fscanf(fichier_Rattaupes,"%i",&eTampon);
				Rattaupe.eSante=Decryptage(eTampon);
				fscanf(fichier_Rattaupes,"%i",&eTampon);
				age_prov=Decryptage(eTampon);
				fscanf(fichier_Rattaupes,"%i",&eTampon);
				Rattaupe.eGestation=Decryptage(eTampon);
				fscanf(fichier_Rattaupes,"%i",&eTampon);
				Rattaupe.eDelaiGrossesse=Decryptage(eTampon);
				fscanf(fichier_Rattaupes,"%i",&eTampon);
				race_prov=Decryptage(eTampon);
				switch(age_prov){
					case 0:
						Rattaupe.Age=Adulte;
						break;
					case 1:
						Rattaupe.Age=Jeune;
						break;
				}
				switch(race_prov){
					case 0:
						Rattaupe.Race=Reproducteur;
						break;
					case 1:
						Rattaupe.Race=Guerrier;
						break;
					case 2:
						Rattaupe.Race=Defenseur;
						break;
					case 3:
						Rattaupe.Race=Cuisinier;
						break;
					case 4:
						Rattaupe.Race=Novice;
						break;
				}
				ajout_droit(pRattaupe[eNombreJoueurIncremente],Rattaupe);
			}
		}
		while(cTemp!='#'&&cTemp!='@');
		eNombreJoueurIncremente++;
        }
	while(cTemp!='@');
        fclose(fichier_Rattaupes);
        
        return pRattaupe;
}

int Decryptage(int nombre){
	nombre=(nombre/12)-5;
	return nombre;
}


